//验证是否登录，如果没有登录，则会跳转到登录页，如果有登录，则会跳转到首页
// (async function(){
//     const resutl = await API.profile()
    
//     const user = resutl.data
//     console.log(user)

    
//     if(!user){
//         // 如果没有登录成功的话，则就是以下的操作
//         alert('登录已经过期或未登录，请重新登录')
//         location.href = './login.html'
//         return
//     }
//     //如果没有通过上面的if判断，那么下面的代码一定是登录状态，执行登录后要做的事情
    
//     //这里是要显示登录后用户的状态信息
//     // 首先获取dom元素
//     const dom = {
//         nickname:$('#nickname'),
//         loginId:$('#loginId'),
//         chatContainer:$('.chat-container'),
//         msg:$('#txtMsg')

        
//     }
    
    
//     //点击关闭的时候注销用户事件

//     const close = $('.close')
//     close.onclick = function(){
//         API.loginOut()
//         location.href = './login.html '
//     }
    
//     setUserInfo()

//     //获取历史聊天纪录
//     async function chat(){
//         const chat = await API.history();
//         for(const item of chat.data ){
//             addChat(item)
//         }
//     }
//     chat()
    
//     //文本滚动
//     function scrollBottom(){
//         dom.chatContainer.scrollTop = dom.chatContainer.scrollHeight
//     }
    
//     // 用户信息
//     function setUserInfo(){
//     dom.nickname.innerText = user.nickname;
//     dom.loginId.innerText = user.loginId;
//     }

//     // 用户
//     function addChat (chatInfo){
//        const div = $$$('div');
//        div.classList.add('chat-item');
//        if(chatInfo.from){
//         div.classList.add('me')
//        }
//        const img = $$$('img');
//        img.className = 'chat-avatar';
//        img.src = chatInfo.from?"./asset/avatar.png":"asset/robot-avatar.jpg"


//        const content = $$$('div');
//        content.className = 'chat-content';
//        content.innerText = chatInfo.content;

//        const date = $$$('div');
//        date.className = 'chat-date';
//        date.innerText = fromDate(chatInfo.createdAt);
       
//        function fromDate(timeStamp){
//         const date = new Date(timeStamp);
//         const year = date.getFullYear() + 1;
//         const moth = (date.getMonth()+ 1).toString().padStart(2,0);
//         const day = date.getDate().toString().padStart(2,0);
//         const hour = date.getHours().toString().padStart(2,0);
//         const minute = date.getMinutes().toString().padStart(2,0)
//         const second = date.getSeconds().toString().padStart(2,0)

//         return `${date}-${year}-${moth}-${day}-${hour}:${minute}:${second}`
//        }
//        div.appendChild(img);
//        div.appendChild(content);
//        div.appendChild(date)
//        dom.chatContainer.appendChild(div)
       

//     }

//     //发送消息
//     async function sendChat(){
//         const resp =  await dom.msg.value.trim();
//         if(!resp){
//             return;
//         }
//         addChat({
//             from:user.loginId,
//             to:null,
//             createdAt:Date.now(),
//             content:resp
//         });
//         scrollBottom();
//         const reception = API.sendChat(resp);
//         addChat({
//             form:null,
//             to:user.loginId,
//             ...reception.data
//         });
//         scrollBottom
        
        
//         console.log(reception)
        
//     }
//     window.sendChat = sendChat
    
    
// })()
(async function () {
    // 验证是否有登录，如果没有登录，跳转到登录页，如果有登录，获取到登录的用户信息
    const resp = await API.profile();
    const user = resp.data;
    if (!user) {
      alert('未登录或登录已过期，请重新登录');
      location.href = './login.html';
      return;
    }
  
    const doms = {
      aside: {
        nickname: $('#nickname'),
        loginId: $('#loginId'),
      },
      close: $('.close'),
      chatContainer: $('.chat-container'),
      txtMsg: $('#txtMsg'),
      msgContainer: $('.msg-container'),
    };
    // 只要没有通过上面判断,下面的代码环境，一定是登录状态
    setUserInfo();
  
    // 注销事件
    doms.close.onclick = function () {
      API.loginOut();
      location.href = './login.html';
    };
  
    // 加载历史记录
    await loadHistory();
    async function loadHistory() {
      const resp = await API.getHistory();
      for (const item of resp.data) {
        addChat(item);
      }
      scrollBottom();
    }
  
    // 发送消息事件
    doms.msgContainer.onsubmit = function (e) {
      e.preventDefault();
      sendChat();
    };
  
    // 设置用户信息
    function setUserInfo() {
      doms.aside.nickname.innerText = user.nickname;
      doms.aside.loginId.innerText = user.loginId;
    }
  
    // 根据消息对象，将其添加到页面中
    /*
    content: "你几岁啦？"
    createdAt: 1651213093992
    from: "haha"
    to: null
    */
    function addChat(chatInfo) {
      const div = $$$('div');
      div.classList.add('chat-item');
      if (chatInfo.from) {
        div.classList.add('me');
      }
      const img = $$$('img');
      img.className = 'chat-avatar';
      img.src = chatInfo.from ? './asset/avatar.png' : './asset/robot-avatar.jpg';
  
      const content = $$$('div');
      content.className = 'chat-content';
      content.innerText = chatInfo.content;
  
      const date = $$$('div');
      date.className = 'chat-date';
      date.innerText = formatDate(chatInfo.createdAt);
  
      div.appendChild(img);
      div.appendChild(content);
      div.appendChild(date);
  
      doms.chatContainer.appendChild(div);
    }
  
    // 让聊天区域的滚动条滚动到底
    function scrollBottom() {
      doms.chatContainer.scrollTop = doms.chatContainer.scrollHeight;
    }
  
    function formatDate(timestamp) {
      const date = new Date(timestamp);
      const year = date.getFullYear();
      const month = (date.getMonth() + 1).toString().padStart(2, '0');
      const day = date.getDate().toString().padStart(2, '0');
      const hour = date.getHours().toString().padStart(2, '0');
      const minute = date.getMinutes().toString().padStart(2, '0');
      const second = date.getSeconds().toString().padStart(2, '0');
  
      return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
    }
  
    async function sendChat() {
      const content = doms.txtMsg.value.trim();
      if (!content) {
        return;
      }
      addChat({
        from: user.loginId,
        to: null,
        createdAt: Date.now(),
        content,
      });
      doms.txtMsg.value = '';
      scrollBottom();
      const resp = await API.sendChat(content);
      addChat({
        from: null,
        to: user.loginId,
        ...resp.data,
      });
      scrollBottom();
    }
    window.sendChat = sendChat;
  
    doms.close.onclick = function () {
      API.loginOut(); // 退出登录
      location.href = './login.html'; // 跳转到登录页
    };
  })();
  